package com.ruoyi.attendance.service;

import java.util.List;

import com.ruoyi.attendance.domain.AttendanceStatusVo;
import com.ruoyi.attendance.domain.SignInfoView;

/**
 * 考勤记录Service接口
 * 
 * @author Weiney
 * @date 2025-04-12
 */
public interface ISignInfoViewService 
{
    /**
     * 查询考勤记录
     * 
     * @param signId 考勤记录主键
     * @return 考勤记录
     */
    public SignInfoView selectSignInfoViewBySignId(Long signId);

    /**
     * 查询考勤记录列表
     * 
     * @param signInfoView 考勤记录
     * @return 考勤记录集合
     */
    public List<SignInfoView> selectSignInfoViewList(SignInfoView signInfoView);

    /**
     * 考勤信息统计
     *
     * @param signInfoView 考勤记录
     * @return 考勤记录集合
     */
    public List<SignInfoView> selectSignStatistic(SignInfoView signInfoView);

    /**
     * 查询本人考勤记录列表
     * @param signInfoView
     * @return
     */
    public List<SignInfoView> selectSignInfoViewListForOwn(SignInfoView signInfoView);

    /**
     * 新增考勤记录
     * 
     * @param signInfoView 考勤记录
     * @return 结果
     */
    public int insertSignInfoView(SignInfoView signInfoView);

    /**
     * 修改考勤记录
     * 
     * @param signInfoView 考勤记录
     * @return 结果
     */
    public int updateSignInfoView(SignInfoView signInfoView);

    /**
     * 批量删除考勤记录
     * 
     * @param signIds 需要删除的考勤记录主键集合
     * @return 结果
     */
    public int deleteSignInfoViewBySignIds(Long[] signIds);

    /**
     * 删除考勤记录信息
     * 
     * @param signId 考勤记录主键
     * @return 结果
     */
    public int deleteSignInfoViewBySignId(Long signId);

    /**
     * 查询考勤记录状态
     * @return
     */
    AttendanceStatusVo selectAttendanceStatus(Long userId, Long deptId);
}
